package org.ttitfly.workflow.engine;

import org.ttitfly.workflow.exception.ProcessRunException;

/**
 * 运行单元，所有能够被运行的流程单元都必须实现此接口，当调度方调用了 {@link #run()}
 * 方法即调度了运行单元，运行完毕后如果还有后续运行单元则触发调度方调度后续运行单元，至此，一个运行单元的生命周期结束。
 * 
 * @author 潘海春
 * @version 2009-8-31
 * @see AbstractRunUnit
 * @see VirtualRunUnit
 */
public interface RunUnit {

	/**
	 * 名称，每个运行单元在流程中都有一个唯一的名称
	 * 
	 * @return
	 */
	String getName();

	/**
	 * 运行
	 * 
	 * @throws ProcessRunException
	 *             对所有受检异常捕获并转换成本异常抛出。
	 */
	void run() throws ProcessRunException;

}
